pxAddLocalForce(body%, vx#, vy#, vz#, mode%)

Параметры

body% - физическое тело
vx#, vy#, vz# - вектор приложения силы
mode% - тип силы

Описание

Прикладывает к центру тяжести тела силу в локальной системе координат.
Mode - может принимать только целые значения от 0 до 5.
0 - прикладывает просто силу, имеет единицу измерения масса*дистанция/время^2.
1 - прикладывает импульс, имеет единицу измерения масса*дистанция/время.
2 - изменение скорости, имеет единицу измерения дистанция/время.
3 - сглаженный импульс (SMOOTH IMPULSE ), используется в конкретных случаях.
4 - сглаженное изменение скорости (SMOOTH VELOCITY CHANGE), используется в конкретных случаях.
5 - ускорение, имеет единицу измерения дистанция/время^2.
Внимание - силу нельзя прикладывать к статическим (с массой 0) и управляемым телам.

Смотрите так же

pxAddForce
    Команды группы:
pxAddLocalForceAtLocalPos, pxAddLocalForceAtPos

Пример

;Пример применения функции
;pxAddLocalForce

Graphics3D 800, 600, 32, 2
SetBuffer BackBuffer()

;Создаем физический мир, устанавливаем гравитацию.
pxCreateWorld(1) ;У нас будет поверхость
pxSetGravity(0, -10, 0)

camera=CreateCamera()
light=CreateLight()
PositionEntity camera,0,20,-40
RotateEntity camera,30,0,0

plane=CreatePlane() ;Физуализируем поверхость
EntityColor plane,0,100,200
EntityAlpha plane,0.5

mir = CreateMirror () ;Чуть украсим зеркалом


body1 = pxCreateCube( 1, 1, 1, 20)
pxSetPosition(body1,0,3,0)
mesh1 = CreateCube()
EntityColor mesh1,255, 0, 0

mode% = 0 ;Поиграем с типом силы
Force# = 2000 ; сила с которой будем давить
;Основной цикл программы
While Not KeyDown(1) ;Пока не нажат ESC

    RenderPhysic(60,0)

; ------------ Применяем pxAddLocalForce
;Применяем силы в зависимости от нажатой клавиши
    If KeyDown(200) pxAddLocalForce(body1,0,0,Force,mode)
    If KeyDown(208) pxAddLocalForce(body1,0,0,-Force,mode)
    If KeyDown(205) pxAddLocalForce(body1,Force,0,0,mode)
    If KeyDown(203) pxAddLocalForce(body1,-Force,0,0,mode)

    If KeyHit(57) Then
        mode = mode+1
        If mode = 6 Then mode = 0
        Select mode
        Case 0
            Force# = 2000
        Case 5
            Force# = 200
        Default
            Force# = 20
        End Select
    EndIf

;Обновим положение отображаемого тела
    pxSetEntity(mesh1,body1)

; UpdateWorld
    RenderWorld
    Text 10,10,"Клавиши управления - прикладывают силу к красному кубику"
    Text 10,20,"Пробел - изменяет тип прикложеной силы"
    Text 10,30,"Текущий тип силы "+ mode
    Text 10,40,"Приложено силы "+ Force

    Flip
    Wend

End

К содержанию

Нажмите здесь чтобы увидеть последнюю версию этой странички в режиме online.